home *** CD-ROM | disk | FTP | other *** search
/ Mastering Computers 3 / Mastering Computers Vol 3.iso / NetWare / Client DOS-WIN / tcp16.exe / TCP16.TXT < prev    next >
Encoding:
Text File  |  1996-04-02  |  30.9 KB  |  888 lines

  1. NOVELL TECHNICAL INFORMATION DOCUMENT
  2.  
  3. TITLE:  TCP16.EXE; Client TCP/IP Transport (update)
  4. README FOR:  TCP16.EXE
  5.  
  6. NOVELL PRODUCTS and VERSIONS:
  7. NetWare Connect 1.0
  8. LAN WorkGroup 4.1
  9. LAN WorkGroup 4.2
  10. LAN WorkPlace for DOS 4.2
  11. LAN WorkPlace for DOS 4.1
  12. NetWare/IP 1.1
  13. LANalyzer for Windows 2.1
  14. NetWare Client for DOS/MS Windows 1.2
  15. LAN WorkPlace 5 for MS Windows and DOS
  16. NetWare/IP 2.1
  17. NetWare Connect 2.0
  18. NetWare/IP 2.2
  19.  
  20. ABSTRACT:
  21.  
  22. [UPDATED: 1996/03/25] TCP16.EXE is the latest maintenance patch for the client
  23. TCP/IP protocol stack.  It contains the latest fixes for Novell's 16-bit Client
  24. TCP/IP protocol stack.  Files which are no longer associated with this protocol
  25. stack remain available via LW42T3.EXE.
  26.  
  27.  
  28.  -----------------------------------------------------------------
  29.  DISCLAIMER
  30.  THE ORIGIN OF THIS INFORMATION MAY BE INTERNAL OR EXTERNAL TO NOVELL.  NOVELL
  31. MAKES EVERY EFFORT WITHIN ITS MEANS TO VERIFY THIS INFORMATION.  HOWEVER, THE
  32. INFORMATION PROVIDED IN THIS DOCUMENT IS FOR YOUR INFORMATION ONLY.  NOVELL
  33. MAKES NO EXPLICIT OR IMPLIED CLAIMS TO THE VALIDITY OF THIS INFORMATION.
  34.  -----------------------------------------------------------------
  35.  
  36.  
  37. ISSUE: 
  38.  
  39. Table of Contents
  40.  
  41.  1 - INTRODUCTION / INSTALLATION INSTRUCTIONS
  42.  2 - NEW THIS REVISION
  43.  2.1 - TCPIP.EXE
  44.  2.2 - WLIBSOCK.DLL
  45.  2.3 - PING.EXE
  46.  2.4 - EXTRANEOUS FILES REMOVED
  47.  2.5 - NEW INSTALLATION NOW SUPPORTED
  48.  3 - UPDATES FROM PREVIOUS REVISION(S)
  49.  4 - ENHANCEMENT HISTORY
  50.  5 - WINSOCK V1.1 COMPLIANCE
  51.  
  52.  -----------------------------------------------------------------
  53.  
  54.  
  55.  1 - INTRODUCTION / INSTALLATION INSTRUCTIONS
  56.  
  57.  1.1 - INTRODUCTION
  58.  
  59.  This document is formatted as a reference document.  Rather than trying to
  60. read this entire document, use the Table of Contents to determine which
  61. sections to read in detail.
  62.  
  63.  Module versions are indicated at the beginning of each symptom below.  In all
  64. cases, these fixes are the current (included) version of the given module.
  65.  
  66.  The name of this patch, TCP16.EXE, will not change while the contents will
  67. with new revisions of the TCP/IP client.  Updates to this patch will be
  68. indicated in the ABSTRACT with the date the patch was updated.
  69.  
  70.  
  71.  1.2 - INSTALLATION INSTRUCTIONS
  72.  
  73.  Install this patch by:
  74.  
  75.  - Running the INSTALLR.BAT batch file, or
  76.  
  77.  - COPYing the files in this patch into the proper product \NET\BIN directory
  78. (d:\NET\BIN, or server/volume:NET\BIN).
  79.  
  80.  - Run LWP_CHK.BAT and address any warnings that are applicable.
  81.  
  82.  
  83.  1.3 - PATCH HISTORY
  84.  
  85.  TCP16.EXE (Rev 4) partially supersedes LW42T3.EXE (Rev 3).  (LW42T3.EXE is
  86. still available.)
  87.  LW42T3.EXE (Rev 3) supersedes LW42T2.EXE (Rev 2).  (VTCPIP.386 re-added.)
  88.  LW42T2.EXE (Rev 2) supersedes LWP42T.EXE (Rev 1).
  89.  LWP42T.EXE (Rev 1) supersedes LWP208.EXE.
  90.  
  91.  
  92.  2 - NEW THIS REVISION
  93.  
  94.  2.1 - TCPIP.EXE
  95.  
  96.  2.1.1 - 5.00.201: New baseline.  Same as 5.00.104.
  97.  
  98.  2.1.2 - 5.00.104: Completed implementing the TCP and UDP socket fix started in
  99. 5.00.102.
  100.  
  101.  2.1.3 - 5.00.103: Added NetWare/IP support for accessing a specific route.
  102.  
  103.  2.1.4 - 5.00.102: Support of feature to flush UDP packets when resource
  104. shortages occur (LSL buffers, PECBs) made optional.
  105.  
  106.  To enable this functionality, add the following keyword to the PROTOCOL TCPIP
  107. section.
  108.  
  109.  PROTOCOL TCPIP
  110.     UDP_FLUSH   ## Flush UDP packets when resources are low.
  111.  
  112.  2.1.5 - 5.00.102: Automatic ARP of the local workstation IP address made
  113. optional.
  114.  
  115.  When the protocol stack initializes, a RARP request is generated with a zero
  116. source IP address to see if the IP address is in use.  The zero source IP
  117. address causes Wellfleet routers to generate errors logs, which in turn cause
  118. unwanted network degradation.
  119.  
  120.  To enable this functionality, add the following keyword to the PROTOCOL TCP/IP
  121. section.
  122.  
  123.  PROTOCOL TCPIP
  124.     NO_DUPCHK   ## Disable the RARP request when the stack loads.
  125.  
  126.  2.1.6 - 5.00.102: Corrected problems with garbage BOOTPTAB files.
  127.  
  128.  The return code from the call NWGetConnectionInformation() was being ignored. 
  129. The return code is now checked and an error returned, if appropriate.
  130.  
  131.  2.1.7 - 5.00.102: Fixed a TCP protocol reconnect problem.
  132.  
  133.  When a TCP/IP client crashes and attempts to reconnect, the protocol stack did
  134. not properly respond to the SYN (Synchronize) packet request.  Likewise, when a
  135. server attempted to reconnect, the stack did not respond properly to the RST
  136. (Reset) packet request.
  137.  
  138.  2.1.8 - 5.00.102: Increased the default TCP and UDP default number of sockets
  139. to 15 each.
  140.  
  141.  Formerly, the default number of sockets for the TCP and UDP protocols
  142. defaulted to 8.  These have been maximized in Novell's 16-bit WinSock
  143. environment to 15 for both TCP and UDP.  This fix helps maintain web surfing
  144. configurations by balancing and maximizing the default number of TCP and UDP
  145. sockets.
  146.  
  147.  Due to Novell's 16-bit WinSock limitation of 31 total sockets (15 TCP sockets,
  148. 15 UDP sockets and 1 raw (ICMP) socket), the number of TCP and UDP sockets are
  149. actually less than those supported by the WLIBSOCK.DLL interface.
  150.  
  151.  To alter the balance or reduce the number of sockets, add the following
  152. keywords to the PROTOCOL TCP/IP section.
  153.  
  154.  PROTOCOL TCPIP
  155.     TCP_SOCKETS 12   ## Set (reduce) the number of TCP sockets to 12.
  156.     UDP_SOCKETS 12   ## Set (reduce) the number of UDP sockets to 12.
  157.     RAW_SOCKETS 1    ## This is the maximum value supported for ICMP sockets.
  158.  
  159.  2.1.9 - 5.00.101: Merged R42-1U and 5.00.100.
  160.  
  161.  2.1.10 - R42-1U: Added UDP_FLUSH and NO_DUPCHK keywords to PROTOCOL TCPIP
  162. section.  (See 2.1.4 and 2.1.5.)
  163.  
  164.  2.2 - WLIBSOCK.DLL
  165.  
  166.  2.2.1 - 5.00.201: New baseline.  Same as 5.00.101.
  167.  
  168.  2.2.2 - 5.00.101: Corrected resource and memory leaks.
  169.  
  170.  These leaks were found when opening and closing Host Presenter sessions using
  171. host names rather than IP addresses on a continuous basis.  The resource and
  172. memory leaks eventually resulted in DNS failures.  Once this failure occurred,
  173. DNS functionality was disabled, though direct IP addresses still continued to
  174. work.  Prior to this fix the only solution was to unload and reload the stack
  175. (the quickest way being to reboot).
  176.  
  177.  2.3 - PING.EXE
  178.  
  179.  2.3.1 - 5.00.201: New baseline.  Same as 5.00.102.
  180.  
  181.  2.3.2 - 5.00.102: Now supports Client-32 for DOS / Windows.
  182.  
  183.  2.4 - EXTRANEOUS FILES REMOVED
  184.  
  185.  In order to provide a minimal and freely available technology, Novell is
  186. releasing these files independent of a product mechanism.  As such, the
  187. following files are no longer associated with this patch:
  188.  
  189.  LWPCON.EXE, LWPCON.MSG, LWPCON.HLP, SNMP.EXE, IPTUNNEL.EXE, RFCNBIOS.EXE
  190.  
  191.  2.5 - New Installations Now Supported.
  192.  
  193.  This patch now provides minimum support for configuring a client with the
  194. Novell TCP/IP-16 protocol stack.  This patch looks for the following products
  195. via their signature file, in the order below, to determine how the installation
  196. / update should take place.
  197.  
  198.  LWPCON.EXE -- LAN WorkPlace / LAN WorkGroup / NetWare Connect
  199.  VLM.EXE -- NetWare Client, other Novell products.
  200.  
  201.  If these two files are not found on your path, the patch installer will create
  202. C:\NWCLIENT and drop all files in that directory.  It will also create / append
  203. to the NET.CFG in that directory with comments on how to minimally configure
  204. your client.
  205.  
  206.  It is recommended that the NetWare Client be installed prior to the
  207. installation of this patch, but this patch may be installed on a clean system
  208. as long as the required ODI components are obtained elsewhere.  If the required
  209. ODI components (LSL.COM and your LAN driver) do not exist on your client, your
  210. new installation will be incomplete.
  211.  
  212.  Full documentation for this information can be found on the web at these
  213. locations:
  214.  
  215.  http://occam.sjf.novell.com:8080/iamg.lwp50.english/transenu/1.toc
  216.  http://occam.sjf.novell.com:8080/nw410.english/ws_d2enu/1.toc
  217.  
  218.  
  219.  
  220.  3 - UPDATES FROM PREVIOUS REVISION(S)
  221.  
  222.  The following details are from previous revisions of this patch.
  223.  
  224.  3.1 - INSTALLR.BAT / WHICH.EXE
  225.  
  226.  The installer uses the utilities WHICH.EXE and DOS REPLACE.EXE.  It also
  227. requires about 1024 bytes of free environment space.  The batch file will find
  228. the correct directory tree by looking for a signature file (namely LWPCON.EXE
  229. or VLM.EXE).  If there are any problems running the installer batch utility,
  230. manually update your appropriate directories with the files contained in this
  231. patch using the REPLACE or COPY command.
  232.  
  233.  Usage: INSTALLR [/h] [/p] [/r] [/d dir]
  234.  
  235.  where:
  236.     /hDisplays this information.
  237.     /rView the TCP16.TXT file after installing.
  238.     /pPrompts user before adding/replacing each file.
  239.     dirOptionally specifies the directory to be upgraded.
  240.  
  241.  WARNING: This batch file requires an environment size of 1024 or more.
  242.     Add this line to CONFIG.SYS to ensure proper execution.
  243.     SHELL=C:\MSDOS\6\COMMAND.COM C:\ /E:2048 /P
  244.  
  245.  NOTE: WHICH.EXE identifies the locations and full names of specified files
  246. found in DOS PATH.  "WHICH -h" will produce a usage description.  This program
  247. is not supported by Novell, Inc and is a utility provided by Technical Support. 
  248. It is donated to this patch by John "Frotz" Fa'atuai (Frotz@novell.com).
  249.  
  250.  
  251.  3.2 - LWP_CHK.BAT / LWP_LOG.BAT
  252.  
  253.  LWP_CHK.BAT will examine your environment and determine if there are multiple
  254. copies of files in unexpected locations.  It will generate a log file (LWP.LOG)
  255. in the TEMP directory.  LWP.LOG lists the important files that were found via
  256. your PATH, complete with version and path information.  Run this batch file to
  257. determine if your client TCP/IP environment is stable.  LWP_LOG.BAT is used by
  258. LWP_CHK.BAT to create LWP.LOG.
  259.  
  260.  NOTE: When running LWP_CHK.BAT and LWP_LOG.BAT, these files must either be in
  261. a directory on the PATH or in your current directory.
  262.  
  263.  
  264.  3.3 - PING.EXE
  265.  
  266.  3.3.1 - R412-2B: PING now correctly handles user-interrupts (Control-C, or
  267. Control-Break) and avoids the error "Unable to open a socket, error 55".
  268.  
  269.  3.3.2 - R412-2A: If the DNS server returns more than one IP address for a host
  270. name, PING.EXE will use the first address in the resulting list.
  271.  
  272.  
  273.  3.4 - TCPIP.EXE
  274.  
  275.  3.4.1 - R42-1T: Now correctly responds to BOOTP requests from ARCNET clients.
  276.  
  277.  3.4.2 - R42-1S: Implemented the SO_LINGER option for LAN WorkPlace for DOS
  278. Toolkit socket calls.  This is required by Netscape Navigator and other World
  279. Wide Web browsers when the user interrupts an in-progress connection.
  280.  
  281.  3.4.3 - R42-1R: Now correctly responds to a network PING.
  282.  
  283.  3.4.4 - R42-1R: TCPIP.EXE no longer times out the internal route table.
  284.  
  285.  3.4.5 - R42-1R: Corrected a problem with NetWare/IP (which did not work with
  286. R42-1N).
  287.  
  288.  3.4.6 - R42-1Q: Fixes a problem sending UDP datagrams.  This problem should
  289. only have affected DNS name resolution.
  290.  
  291.  3.4.7 - R42-1P: TCP sockets opened with RFCNBIOS.EXE would sometimes be left
  292. open, even after the session was closed.
  293.  
  294.  3.4.8 - R42-1P: Setting a TCP_WINDOW (under the NET.CFG PROTOCOL TCPIP) will
  295. now display a warning if the value is greater than 32767.  In this situation,
  296. the value is now set to 32767, rather than 0 (as was the case in previous
  297. versions).
  298.  
  299.  3.4.9 - R42-1O: The LAN WorkPlace for DOS Toolkit call so_write() would hang
  300. if the passed a buffer size larger than 32725 bytes.
  301.  
  302.  
  303.  3.4.10 - The correct usage for TCPIP.EXE is:
  304.  
  305.          TCPIP [-h] [-s] [-u] [-c=full path to NET.CFG] [-x=do not load high]
  306.  
  307.         -u -- Attempt to unload TCPIP.EXE.
  308.         -h -- Display command line usage.
  309.         -s -- Only display signon banner.
  310.         -x -- Load in conventional memory only.  Don't load high.
  311.         -c=file -- Use 'file' as the preferred NET.CFG.
  312.  
  313.  Previous versions of TCPIP.EXE supported a "-W" parameter.  This is now
  314. controlled in NET.CFG via the option CRITICAL_SECTION under PROTOCOL TCPIP.
  315.  
  316.  NOTE: R42-1T still supports the "-s" option, though future revisions of
  317. TCPIP.EXE will drop support for this command line switch.
  318.  
  319.  3.4.11 - R42-1N: Now works with all versions of SLIP_PPP.COM.  This includes
  320. SLIP_PPP.COM (prior to 7/20/94, 42,046 bytes) as well as the latest version of
  321. SLIP_PPP.COM found in LWP42D.EXE.  NOTE: 1995/07/01: SLIP_PPP.COM has now be
  322. updated by NetWare Connect with NESL.COM, NCOMX.COM and NWREMOTE.COM.
  323.  
  324.  3.4.12 - R42-1N: Now performs bounds checking when dispatching protocol
  325. control events.
  326.  
  327.  3.4.13 - R42-1N: Now returns error code ENETDOWN on TCP sockets when the
  328. serial driver detects a dropped connection.
  329.  
  330.  3.4.14 - R42-1N: Workstations with 3C509 cards no longer hang.  The 3C509 MLID
  331. driver passed bad packets up the protocol stack, when TCPIP.EXE wasn't
  332. expecting them.  These bad packets are now discarded.  This was a problem with
  333. 3C509 cards and NetWare/IP.
  334.  
  335.  3.4.15 - R42-1N: Resolves the RXMONSTK problem with LANalyzer for Windows 2.1.
  336.  
  337.  3.4.16 - R42-1M: Entering and exiting of Windows Critical Sections were
  338. restructured.
  339.  
  340.  3.4.17 - R42-1M: Now correctly deallocates all memory associated with the TSR
  341. upon unloading.  Previously, the PSP did not deallocate if the TSR was loaded
  342. into upper memory (UMBs).
  343.  
  344.  3.4.18 - R42-1L: TCPIP.EXE and WGTCPIP.EXE are merged into a common
  345. executable.  LAN WorkGroup administrators need to change any references of
  346. WGTCPIP.EXE to TCPIP.EXE in the LANWG.BAT files.
  347.  
  348.  3.4.19 - R42-1L: Now checks for COMPAQ CIM interface failures.
  349.  
  350.  3.4.20 - R42-1L: Now tries to automatically load itself high into any
  351. available UMBs.  If memory is unavailable, it loads in conventional memory. 
  352. NOTE: To disable this functionality, invoke TCPIP.EXE with a "-x" parameter.
  353.  
  354.  3.4.21 - R42-1K: Fixed a minor cosmetic bug when printing the sign-on banner.
  355.  
  356.  3.4.22 - R42-1K: The frame types FDDI_SNAP and IBM_PCN2L were not displayed
  357. when the protocol stack loaded.  Instead 'Unknown' was displayed.
  358.  
  359.  3.4.23 - R42-1J: Fixes in the LAN WorkPlace Toolkit call connect_anr().
  360.  
  361.  3.4.24 - R42-1F: "LSLERR-DUPLICATE-ENTRY" error occurred if TCPIP.EXE was
  362. re-entered after loading WGTCPIP.EXE, or vice versa.  This has been resolved by
  363. merging TCPIP.EXE and WGTCPIP.EXE.
  364.  
  365.  3.4.25 - R42-1F: HARDWARE TYPE 6 was used instead of HARDWARE TYPE 1 when
  366. doing an ARP.  Both HARDWARE TYPEs 1 and 6 are now supported.  Only while doing
  367. an ARP send on HARDWARE TYPE 6 will the HARDWARE TYPE in the packet be sent as
  368. type 1.
  369.  
  370.  3.4.26 - R42-1D: Applications would hang with Thomas Conrad 100 MBPS ARCNET
  371. cards and other ARCNET cards.
  372.  
  373.  3.4.27 - R42-1N: A new feature of TCPIP.EXE automatically loads VTCPIP.386 VxD
  374. when MS Windows is started in Enhanced Mode (provided that VTCPIP.386 is on DOS
  375. PATH).  Therefore, "DEVICE=VTCPIP.386" can now be removed from Windows
  376. SYSTEM.INI.  VTCPIP.386 will no longer complain when MS Windows is started in
  377. enhanced mode with TCPIP.EXE not resident.
  378.  
  379.  3.4.28 - R42-1A: Fixes a problem relative to Xserver (from VisionWare).  The
  380. listen() call was being invoked with an argument of zero (0), which caused all
  381. incoming connections to be refused.
  382.  
  383.  3.4.29 - R412-2B: No longer runs slowly or hangs when receiving packets that
  384. required re-assembly at the IP layer.
  385.  
  386.  
  387.  3.5 - WLIBSOCK.DLL
  388.  
  389.  3.5.1 - R42-1D: WLIBSOCK.DLL no longer reports problems with multi-homed
  390. hosts.  Previous versions of WLIBSOCK.DLL had the first byte set to zero and
  391. the last byte truncated.
  392.  
  393.  3.5.2 - R42-1D: Now uses QUERY instead of IQUERY.  Previously used a defunct
  394. INVERSE QUERY mechanism.
  395.  
  396.  3.5.3 - R42-1D: Now supports partial host names.
  397.  
  398.  3.5.4 - R42-1D: Now recursively walks up the DNS tree.
  399.  
  400.  3.5.5 - R42-1D: RESOLV.CFG now supports up to 8 name servers.  When a name
  401. resolution is started, the TCP/IP protocol stack currently queries all 8
  402. servers at the same time.  Users may want to change this so that the name
  403. servers are queried sequentially.  The following enhanced commands may be
  404. placed anywhere within RESOLV.CFG.
  405.  
  406.  Syntax: SEARCH DNS HOSTS SEQUENTIAL
  407.  
  408.  This example searches the DNS first, then the HOSTS file, and search the DNS
  409. servers sequentially.
  410.  
  411.  Syntax: SEARCH DNS
  412.  
  413.  This searches DNS only and makes concurrent queries to the DNS servers.
  414.  
  415.  Syntax: SEARCH HOSTS
  416.  
  417.  This example searches the \NET\TCP\HOSTS file only.
  418.  
  419.  Syntax: SEARCH HOSTS DNS SEQUENTIAL
  420.  
  421.  This example searches the HOSTS file first, then the DNS servers sequentially.
  422.  
  423.  Syntax: SEARCH DNS HOSTS
  424.  
  425.  This is the default behavior, unless overridden.
  426.  
  427.  3.5.6 - R42-1D: RESOLV.CFG now supports more than one domain name.
  428.  
  429.  The maximum number of domain names is: 20
  430.  The maximum number of name servers is:  8
  431.  
  432.  Example \NET\TCP\RESOLV.CFG:
  433.  
  434.     domain novell.com
  435.     domain sjf.novell.com
  436.     domain prv.novell.com
  437.     domain svl.novell.com
  438.     domain dus.novell.com
  439.     domain novell.jp.co
  440.  
  441.     nameserver xx.xx.xx.xx
  442.     nameserver yy.yy.yy.yy
  443.     nameserver zz.zz.zz.zz
  444.  
  445.     search dns hosts sequential
  446.  
  447.  
  448.  3.6 - WINSOCK.DLL
  449.  
  450.  3.6.1 - R42-1A: Support for SO_LINGER implemented.  SO_LINGER is a LAN
  451. WorkPlace Toolkit option passed to setsockopt() which allows the immediately
  452. tear-down of a socket once the local machine has closed the socket, rather than
  453. waiting for the remote machine to also close the socket.
  454.  
  455.  3.6.2 - R-2C: Fixes a problem in gethostbyname() for multi-homed hosts.  The
  456. list of address returned in struct hostent was incorrect when an address other
  457. than the last in the list contained a 0 in one of the address bytes.  The
  458. problem occurs only if there is a 0 in one of the address bytes and there is
  459. more than one address for the host.
  460.  
  461.  3.6.3 - R-2C: Fixes a problem where WASIsBlocking() would sometimes return
  462. TRUE while there was an outstanding call to WSAAsyncGetHostByName() yet no
  463. outstanding blocking function was being serviced.
  464.  
  465.  3.6.4 - R-2B: Now returns WSASYSNOTREADY on WSAStartup() if stack is not
  466. loaded.
  467.  
  468.  3.6.5 - R-2B: Now allows cancel of gethostbyname().
  469.  
  470.  3.6.6 - R-2B: Minimizes fixed low memory usage.
  471.  
  472.  3.6.7 - R-2B: Now supports 16 addresses in struct hostent.
  473.  
  474.  3.6.8 - R-2B: gethostbyname() now supports longer names (more than 32 bytes).
  475.  
  476.  
  477.  3.7 - VTCPIP.386
  478.  
  479.  3.7.1 - R412-2a: VTCPIP.386 is now auto-loaded by TCPIP.EXE when Windows 3.1
  480. Enhanced Mode (or later) loads without requiring an entry in SYSTEM.INI
  481. (DEVICE=VTCPIP.386).  This VxD must be on the PATH.  If TCPIP.EXE is not loaded
  482. when Windows starts, VTCPIP.386 won't complain about not finding the Novell
  483. 16-bit Client TCP/IP protocol stack.
  484.  
  485.  
  486.  3.8 - NOVASYNC.EXE
  487.  
  488.  3.8.1 - R41-2B: Corrected internal timing problems which could cause General
  489. Protect Failures.
  490.  
  491.  
  492.  
  493.  4 - ENHANCEMENT HISTORY
  494.  
  495.  4.1 - NET.CFG: Windows Critical Section Enhancements.
  496.  
  497.  New Windows Critical Section code was written.  By default, this code is
  498. enabled and the default for this option is YES.  If there are any timing issues
  499. that are discovered after upgrading to the new TCPIP.EXE contained within this
  500. patch, disable this option with a value of NO.
  501.  
  502.  The syntax is as follow:
  503.  
  504.  PROTOCOL TCPIP
  505.     CRITICAL_SECTION     YES | NO
  506.  
  507.  Example:
  508.  
  509.  PROTOCOL TCPIP
  510.     CRITICAL_SECTION     YES     ## Default is YES.
  511.  
  512.  
  513.  4.2 - NET.CFG: Dead Router Detection and Recovery
  514.  
  515.  The protocol stack will automatically switch to a backup router if the primary
  516. router fails.  Switching to a backup router prevents the interruption of user
  517. applications.  The switch occurs when the selected router does not respond to
  518. an ARP request or when the protocol stack detects excessive TCP
  519. retransmissions.  Router switching applies to default routers as well as
  520. routers in the Route Cache Table.
  521.  
  522.  The syntax is:
  523.  
  524.  PROTOCOL TCPIP
  525.     IP_ROUTER {ip_address} | {host_address}
  526.  
  527.  In the syntax given above, the IP_ROUTER line may be replicated up to 3 times.
  528.  
  529.  Example:
  530.  
  531.  PROTOCOL TCPIP
  532.     IP_ROUTER 128.57.4.254          ## First router
  533.     IP_ROUTER 128.57.4.253          ## Second router
  534.     IP_ROUTER 128.57.4.252          ## Third router
  535.  
  536.  
  537.  4.3 - NET.CFG: Adding Static Routes.
  538.  
  539.  Allows you to set a permanent entry in the routing table to associate the
  540. destination network host address with a router address. Static route
  541. configuration places the indicated route(s) into the IP routing database.  IP
  542. uses these routes in addition to dynamically discovered routes to direct
  543. packets.
  544.  
  545.  Static routes may either be added to manually NET.CFG or added by using
  546. d:\NET\BIN\LWPCON.EXE (Local Workstation | Tables | Routing Tables).
  547.  
  548.  The syntax is as follow:
  549.  
  550.  PROTOCOL TCPIP
  551.     ROUTE { HOST | NET }    {address} {router_address}
  552.  
  553.  Example 1:
  554.  
  555.  PROTOCOL TCPIP
  556.     ROUTE HOST     128.57.225.24     128.57.4.19
  557.  
  558.  Example 2:
  559.  
  560.  PROTOCOL TCPIP
  561.     ROUTE NET     128.90.0.0     128.57.6.55
  562.  
  563.  
  564.  4.4 - NET.CFG: New Frame Types Supported
  565.  
  566.  TCPIP will now automatically perform a protocol registration for frame types
  567. FDDI_SNAP and IBM_PCN2_SNAP.
  568.  
  569.  Example 1:
  570.  
  571.  LINK DRIVER FDDI_MLID
  572.     FRAME FDDI_SNAP
  573.  
  574.  Example 2:
  575.  
  576.  LINK DRIVER IBM_PCN2_MLID
  577.     FRAME IBM_PCN2_SNAP
  578.  
  579.  
  580.  4.5 - NET.CFG: Tuning the TCP Protocol Receive Window Size.
  581.  
  582.  WARNING: For performance reasons, Novell's 16-bit TCP/IP protocol stack does
  583. not calculate the window size at each packet.  Instead, the value specified by
  584. the TCP_WINDOW parameter is blindly used.  Increasing this value above the
  585. default of 2880 can cause TCP packet retransmissions due to dropped packets. 
  586. This problem will be addressed with Novell's 32-bit TCP/IP protocol stack which
  587. will be available with Client-32 for DOS / Windows.
  588.  
  589.  Establishes the TCP protocol's initial maximum receive window size.  This
  590. controls how many back-to-back packets a remote host will transmit.
  591.  
  592.  Since the TCP window size is a function of the ability to receive the data,
  593. adjusting the LSL BUFFERS is necessary to accommodate larger TCP_WINDOW
  594. settings.  A simplistic relation (formula) which describes the TCP_WINDOW size
  595. setting is:
  596.  
  597.  window LESS THAN OR EQUAL TO (number_buffers * (packet_frame_size -
  598. packet_header_size))
  599.  
  600.  To simplify this calculation, use zero for packet_header_size.
  601.  
  602.  Ethernet has 16 bytes of header overhead.  FDDI has approximately 58 symbols
  603. of header overhead (approximately 36 bytes).  ARCNet has 9 bytes of header
  604. overhead.  Token Ring has 21 bytes of overhead.
  605.  
  606.  If other protocol stacks are utilizing the ODI BUFFERS for incoming data, the
  607. dynamic TCP_WINDOW size will be adjusted accordingly.  A TCP_WINDOW size of 0
  608. (only found in LAN traces) indicates that the sending host should wait until
  609. the receiving host's protocol stack has available buffers to receive the data.
  610.  
  611.  The syntax is:
  612.  
  613.  LINK SUPPORT
  614.     BUFFERS     {buffers} {frame_size}
  615.  
  616.  PROTOCOL TCPIP
  617.     TCP_WINDOW     {window_size}
  618.  
  619.  The minimum {window_size} is 512 and maximum is 32767.  The default
  620. {window_size} is 2880.
  621.  
  622.  The {frame_size} for ETHERNET_II is 1518.  The {frame_size} for FDDI is 4558. 
  623. The {frame_size} for ARCNet is 517.  The value of {frame_size} is the packet
  624. headers plus the packet data for a given media type.
  625.  
  626.  Ethernet Example:
  627.  
  628.  LINK SUPPORT
  629.     BUFFERS      16   1518     ## Allow 16 inbound frames.
  630.  
  631.  PROTOCOL TCPIP
  632.     TCP_WINDOW     17856     ## 12 packets sans headers.
  633.  
  634.  This example arbitrarily leaves 4 packets for use by other protocol stacks.
  635.  
  636.  Token Ring Example:
  637.  
  638.  LINK SUPPORT
  639.     BUFFERS     8   4202     ## Allow 8 inbound frames.
  640.  
  641.  PROTOCOL TCPIP
  642.     TCP_WINDOW     20905     ## 5 packets sans headers.
  643.  
  644.  This example arbitrarily leaves 3 packets for use by other protocol stacks.
  645.  
  646.  FDDI Example:
  647.  
  648.  LINK SUPPORT
  649.     BUFFERS     10   4558     ## Allow 10 inbound frames.
  650.  
  651.  PROTOCOL TCPIP
  652.     TCP_WINDOW     22500     ## 5 packets sans headers.
  653.  
  654.  This example arbitrarily leaves 5 packets for use by other protocol stacks.
  655.  
  656.  ARCNet Example:
  657.  
  658.  LINK SUPPORT
  659.     BUFFERS     12   517     ## Allow 12 inbound frames
  660.  
  661.  PROTOCOL TCPIP
  662.     TCP_WINDOW     6096     ## 12 packets sans headers.
  663.  
  664.  This example arbitrarily leaves 0 packets for use by other protocol stacks.
  665.  
  666.  
  667.  4.6 - NET.CFG: TCP Maximum Segment Size Tuning
  668.  
  669.  Controls the maximum TCP packet segment size to be used when communicating
  670. with other nodes.  This packet segment size must be smaller than the current
  671. frame size.  It might also be used to avoid down-stream packet fragmentation
  672. and subsequent reassembly if the packet crosses a heterogeneous protocol
  673. router, where the packet size shrinks.  The minimum recommended segment size is
  674. 200 bytes.  The maximum segment size depends on a particular MLID and is beyond
  675. the scope of this document.
  676.  
  677.  Example:
  678.  
  679.  PROTOCOL TCPIP
  680.     TCP_MAXSEGSIZE     512    
  681.  
  682.  This example sets the maximum packet size to 512 bytes.  This means that
  683. out-bound packets will be limited to 512 bytes of data (excluding headers).
  684.  
  685.  
  686.  4.7 - NET.CFG: Configuration of minimum and maximum transmission timeouts.
  687.  
  688.  TCPIP.EXE now allows the configuration of the minimum and maximum
  689. retransmission timeouts.
  690.  
  691.  An example of timeout options in NET.CFG is as follow:
  692.  
  693.  PROTOCOL TCPIP
  694.     TCP_MINRXMIT     1     ## 1 tick
  695.     TCP_MAXRXMIT     540     ## 540 ticks
  696.  
  697.  TCP_MINRXMIT ranges between 1 and 540 ticks (default is 1).  TCP_MAXRXMIT
  698. ranges from 540 to 1080 (default is 540).
  699.  
  700.  Example: Values are in units of 55 milliseconds (ticks).  Since the standard
  701. BIOS tick rate is 18.2 times per second, you would use the following setting to
  702. have retransmits fire after approximately 1 second.
  703.  
  704.  PROTOCOL TCPIP
  705.     TCP_MINRXMIT     18     ## 18 * 55 = 990ms (~1 second)
  706.  
  707.  
  708.  4.8 - NET.CFG: Duplicate IP Address Detection.
  709.  
  710.  Detects whether the assigned local IP address is already being used by another
  711. node on the local network.  The IP address can be obtained either through
  712. NET.CFG configuration or dynamically from the BOOTP or RARP server.  If TCP/IP
  713. detects a duplicate IP address, TCPIP.EXE will not load and the following error
  714. message appears:
  715.  
  716.  FATAL: IP address assigned is already in use by: NNNNNNNNNNNN.
  717.  
  718.  where NNNNNNNNNNNN is the six-byte hardware address of the node currently
  719. using the IP address.
  720.  
  721.  
  722.  
  723.  5 - WinSock v1.1 Compliance
  724.  
  725.  Development with WINSOCK requires the WINSOCK.H file and the WINSOCK v1.1
  726. specification also an import library of WINSOCK.DLL must be created.  The
  727. WINSOCK.H file and WINSOCK v1.1 specification can be obtained at the following
  728. Internet addresses:
  729.  
  730.  <A
  731. HREF="ftp://sunsite.unc.edu/pub/micro/pc-stuff/ms-windows/winsock/winsock-1.1">
  732.  
  733.  ftp://sunsite.unc.edu/pub/micro/pc-stuff/ms-windows/winsock/winsock-1.1
  734.  
  735.  </A>
  736.  
  737.  
  738.  5.1 - WINSOCK.DLL Dependencies
  739.  
  740.  After application of TCP16.EXE, WINSOCK.DLL relies on WLIBSOCK.DLL,
  741. NOVASYNC.EXE, and TCPIP.EXE if you are using Novell's 16-bit TCP/IP protocol
  742. stack.  This might be via any one of the products listed above.
  743.  
  744.  
  745.  5.2 - UNSUPPORTED OR IMPLEMENTATION DIFFERENCES
  746.  
  747.  The following list identifies features of Windows Sockets that are unsupported
  748. or supported differently by Novell's 16-bit TCP/IP protocol stack.
  749.  
  750.  - MSG_PEEK is ignored on recv() or recvfrom().
  751.  
  752.  - MSG_DONTROUTE is ignored on send() or sendto().
  753.  
  754.  - The socket control option SIOACATMARK is not supported.  WSAEINVAL will be
  755. returned if used.
  756.  
  757.  
  758.  5.3 - Socket Handling Options Summarized.
  759.  
  760.  The following notes refer to section 5.5 which summarizes handling of socket
  761. options.
  762.  
  763.  5.3.1 - The following socket options default to TRUE and cannot be changed to
  764. FALSE.
  765.  
  766.  SO_BROADCAST
  767.  SO_DONTLINGER
  768.  SO_OOBINLINE
  769.  
  770.  5.3.2 - The following socket options default to FALSE and cannot be changed to
  771. TRUE.
  772.  
  773.  SO_DEBUG
  774.  SO_DONTROUTE
  775.  SO_ERROR
  776.  
  777.  5.3.3 - Out-of-Band Data
  778.  
  779.  Since SO_OOBINLINE is always TRUE, specifying MSG_OOB on recv() or recvfrom()
  780. has no effect.  Out-of-band data is always received as normal data. 
  781. Out-of-band data may be sent.
  782.  
  783.  
  784.  5.4 - Sockets
  785.  
  786.  5.4.1 - The maximum number of sockets supported is 31.
  787.  
  788.  5.4.2 - Raw Sockets
  789.  
  790.  You can create sockets of type SOCK_RAW using the socket function.  The
  791. supported functions for raw sockets are:
  792.  
  793.  socket(), ioctlsocket() to set non-blocking mode, sendto(), recvfrom(), and
  794. closesocket().
  795.  
  796.  5.4.3 - Raw Sockets and Ping
  797.  
  798.  Raw sockets are supported only for Ping.  The application is responsible for
  799. building and processing ICMP headers.
  800.  
  801.  5.4.4 - Terminating communications
  802.  
  803.  Either do not use shutdown() at all, or use shutdown() only when preparing to
  804. terminate communications (for example, to close the socket).
  805.  
  806.  5.4.5 - FIN packet
  807.  
  808.  If you use shutdown() to disable sending, Novell's 16-bit TCP/IP protocol
  809. stack sends a FIN packet.  An application should not issue a send() or sendto()
  810. after a shutdown() which has disabled sending.
  811.  
  812.  5.4.6 - Receiving After a Shutdown
  813.  
  814.  An application should not issue a recv() or recvfrom() after a shutdown() that
  815. disabled receiving.
  816.  
  817.  
  818.  5.5 - Socket Options
  819.  
  820.  <PRE>
  821.  Option        Default  setsockopt() Return Values
  822.  ------------- -------- --------------------------
  823.  SO_RCVBUF     4096     yes
  824.  SO_SNDBUF     4096     yes
  825.  SO_ACCEPTCONN FALSE    WSAENOPROTOOPT
  826.  SO_BROADCAST  TRUE     WSAENOPROTOOPT if setsockopt() called with
  827. SO_BROADCAST.
  828.  SO_DONTLINGER TRUE     WSAENOPROTOOPT if setsockopt() called with
  829. SO_DONTLINGER.
  830.  SO_OOBINLINE  TRUE     WSAENOPROTOOPT if setsockopt() called with
  831. SO_OOBINLINE.
  832.  SO_DEBUG      FALSE    WSAENOPROTOOPT if setsockopt() called with SO_DEBUG.
  833.  SO_DONTROUTE  FALSE    WSAENOPROTOOPT if setsockopt() called with
  834. SO_DONTROUTE.
  835.  SO_ERROR      FALSE    WSAENOPROTOOPT if setsockopt() called with SO_ERROR.
  836.  SO_TYPE       none     WSAENOPROTOOPT
  837.  SO_KEEPALIVE  FALSE    yes
  838.  SO_REUSEADDR  FALSE    yes
  839.  TCP_NODELAY   not supp WSAENOPROTOOPT
  840.  SO_LINGER     FALSE    yes
  841.  </PRE>
  842.  
  843.  Calling getsockopt() with TCP_NODELAY will return WSAENOPROTOOPT.  All other
  844. options are supported.
  845.  
  846.  
  847. Self-Extracting File Name: tcp16.exe
  848.  
  849. Files Included     Size     Date      Time
  850.  
  851. ..\
  852.        TCP16.TXT     (This file)
  853.     INSTALLR.BAT            8616         3-26-96     12:50:12 pm
  854.      LWP_CHK.BAT           14436         3-31-95      5:01:00 pm
  855.      LWP_LOG.BAT            1613         3-31-95      5:01:00 pm
  856.     NOVASYNC.EXE            4960          3-5-96      5:01:00 pm
  857.         PING.EXE           54666          3-5-96      5:01:00 pm
  858.         PING.MSG            2500          3-5-96      5:01:00 pm
  859.         PING.PIF             545         7-21-92      5:01:00 pm
  860.        TCPIP.EXE           71169          3-5-96      5:01:00 pm
  861.       VTCPIP.386           10995          3-5-96      5:01:00 pm
  862.        WHICH.EXE           26751         12-7-94      5:01:00 pm
  863.      WINSOCK.DLL           35632          3-5-96      5:01:00 pm
  864.     WLIBSOCK.DLL           50170          3-5-96      5:01:00 pm
  865.  
  866.  
  867. Installation Instructions:
  868.  
  869. Install this patch by:
  870.  
  871.  - Unpack this archive by running TCP16 in an empty TEMP directory. 
  872.  
  873.  - Running the INSTALLR.BAT batch file, or
  874.  
  875.  - COPYing the files in this patch into the proper product \NET\BIN directory
  876. (d:\NET\BIN, or server/volume:NET\BIN).
  877.  
  878.  - Run LWP_CHK.BAT and address any warnings that are applicable.
  879.  
  880.  
  881.  
  882.  -----------------------------------------------------------------
  883.  Any trademarks referenced in this document are the property of their
  884. respective owners.  Consult your product manuals for complete trademark
  885. information.
  886.  -----------------------------------------------------------------
  887.  
  888.